#include <bits/stdc++.h>
#define int long long // 将int重定义为long long类型
using namespace std;
using pii = pair<int, int>;     // 定义pair<int,int>的别名
using ll = long long;           // 定义long long的别名
using lll = __int128_t;         // 定义128位整数的别名
using ull = unsigned long long; // 定义无符号long long的别名
const ll INF = 1e18;            // 定义无穷大常量
const int MOD = 1e9 + 7;        // 定义模数常量

// 比较两个字符串，返回长度较短的字符串
// 如果其中一个为空，则返回另一个
string minStr(string &a, string &b) {
  if (a.empty())
    return b;
  if (b.empty())
    return a;
  return a.size() > b.size() ? b : a;
}

void solve() {
  int n;
  cin >> n; // 读取输入数字n

  // dp数组定义:
  // dp[i][0]表示数字i的最短表达式，最外层操作为乘法
  // dp[i][1]表示数字i的最短表达式，最外层操作为加法
  vector<vector<string>> dp(n + 10, vector<string>(2));

  int k = 1;
  dp[1][0] = "1";                // 数字1的基本表达式
  dp[1][1] = string(10000, 'm'); // 初始化为极大值，表示不可达

  for (int i = 2; i <= n; i++) {
    // 处理全1数字的情况(如1,11,111等)
    while (k < i) {
      k = k * 10 + 1;
    }
    if (k == i) {
      dp[i][0] = to_string(k); // 直接使用数字本身作为表达式
    }

    // 加法转移: 尝试所有可能的加法分解i = j + (i-j)
    for (int j = 1; j <= i / 2; j++) {
      string tmp =
          minStr(dp[j][0], dp[j][1]) + "+" + minStr(dp[i - j][0], dp[i - j][1]);
      if (tmp.size() < dp[i][1].size() || dp[i][1].empty()) {
        dp[i][1] = tmp; // 更新最短加法表达式
      }
    }

    // 乘法转移: 尝试所有可能的乘法分解i = j * (i/j)
    for (int j = 2; j * j <= i; j++) {
      if (i % j)
        continue;                              // 跳过不能整除的情况
      string left = "(" + dp[j][1] + ")";      // 左操作数，加法表达式需要括号
      string right = "(" + dp[i / j][1] + ")"; // 右操作数，加法表达式需要括号
      string tmp = minStr(dp[j][0], left) + "*" + minStr(dp[i / j][0], right);
      if (tmp.size() < dp[i][0].size() || dp[i][0].empty()) {
        dp[i][0] = tmp; // 更新最短乘法表达式
      }
    }
  }

  // 输出数字n的最短表达式(比较乘法和加法表达式)
  cout << minStr(dp[n][0], dp[n][1]);
}

signed main() {
  ios::sync_with_stdio(0); // 加速C++输入输出
  cin.tie(0);              // 解除cin与cout的绑定

  int t = 1;
  while (t--) {
    solve(); // 调用解题函数
  }
  return 0;
}
